home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus Special 23 / AMIGAplus Sonderheft 23 (2000)(Falke)(DE)[!].iso / PublicDomain / Goldies / PolyEd2 / Macros / capchar.ped < prev    next >
Text File  |  1999-11-08  |  2KB  |  85 lines

  1. /*
  2. ** $VER: capchar.ped 1.0 (6.5.95) written by Stefan Schulz
  3. **
  4. ** This file changes upper/lower case of a character
  5. */
  6.  
  7. OPTIONS RESULTS
  8.  
  9. OPTIONS FAILAT 11                           /* ignore warnings          */
  10. SIGNAL ON SYNTAX                            /* ensure clean exit        */
  11. SIGNAL ON FAILURE
  12. SIGNAL ON BREAK_C                            /* no label->syntax->exit    */
  13.  
  14. if (LEFT(ADDRESS(), 6) ~= "POLYED") then do
  15.     if SHOW("Ports", "POLYED.1") then
  16.         address 'POLYED.1'
  17.     else do
  18.         say "PolyEd is not running!"
  19.         exit
  20.     end
  21. end
  22.  
  23. 'LOCKGUI'
  24.  
  25. /*----- begin of custom code area --------------------------------------*/
  26.  
  27. 'GETCHAR' VAR 'char'
  28.  
  29. do  replace=0
  30.     select
  31.         /* German "Umlaute" have to be converted by hand */
  32.          when (char = "Ä") then char = "ä"
  33.          when (char = "Ö") then char = "ö"
  34.          when (char = "Ü") then char = "ü"
  35.          when (char = "ä") then char = "Ä"
  36.          when (char = "ö") then char = "Ö"
  37.          when (char = "ü") then char = "Ü"
  38.  
  39.          /* upper low-case-letters */
  40.         when (char >= "a") & (char <= "z")
  41.          then upper char
  42.  
  43.         /* ARexx failed to do the arithmetic conversion of the
  44.            following capitals. God knows why...                         */
  45.         when (char = "J") then char = "j"
  46.         when (char = "K") then char = "k"
  47.         when (char = "L") then char = "l"
  48.         when (char = "M") then char = "m"
  49.         when (char = "N") then char = "n"
  50.         when (char = "O") then char = "o"
  51.         when (char = "Z") then char = "z"
  52.  
  53.         /* lower captials  */
  54.         when (char >= "A") & (char <= "Z")
  55.          then char = x2c( c2x(char) + (c2x('a') - c2x('A')) )
  56.  
  57.          /* special character handling */
  58.         otherwise do
  59.                     'CURSOR RIGHT'
  60.                     leave replace
  61.                   end
  62.  
  63.     end /* select */
  64.  
  65.     'TEXT' char
  66.     'DELETE'
  67.  
  68.     leave replace
  69.  
  70. end /* do */
  71.  
  72. /*----- end of custom code area ----------------------------------------*/
  73.  
  74. 'UNLOCKGUI'                                    /* Clean exit                */
  75. EXIT
  76.  
  77. SYNTAX:                                     /* ARexx error...           */
  78. say "Error line" SIGL ":" ERRORTEXT(RC)     /* report it...             */
  79. 'UNLOCKGUI'                                 /* Unlock GUI!              */
  80. EXIT                                        /* exit                     */
  81.  
  82. FAILURE:
  83. 'UNLOCKGUI'                                 /* Unlock GUI!              */
  84. EXIT                                        /* exit                     */
  85.